
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Vue 介绍</title>
	<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<h1>---Vue的Hello world，声明式渲染,使用{{}}显示一个信息, 文本插值----------</h1>

<div id="app-1">
 <p>{{ message }}</p>
</div>

<h1>APP2---声明式渲染,停留显示信息，绑定元素attribute-----------------------------</h1>
<div id="app-2">
  <p v-bind:title="message">
    鼠标悬停几秒钟查看此处动态绑定的提示信息！
  </p>
</div>

<h1>APP4---  v-for的用法，显示一个列表--------------------------------------------------------</h1>
<div id="app-4">
  <ol>
    <li v-for="todo in todos">
      {{ todo.text }}
    </li>
  </ol>
</div>

<h1>APP5---methods的用法-----------------------------------</h1>
<div id="app-5">
  <p>{{ message }}</p>
  <button v-on:click="reverseMessage">逆转消息</button>
</div>

<span>APP6---v-model双向绑定信息--------------------------------------</span>
<div id="app-6">
  <p>{{ message }}</p>
  <input v-model="message">
</div>

<span>
APP7---Vue.component组件的使用-一个数据----------------------------------
</span>


<div id="app-7">
	<ol>
	  <!-- 创建一个 todo-item 组件的实例 -->
	  <todo-item></todo-item>
	</ol>
</div>


<span>APP8---Vue.component组件的使用-数组数据-----------------------------------</span>
 <!--
      现在我们为每个 todo-item 提供 todo 对象
      todo 对象是变量，即其内容可以是动态的。
      我们也需要为每个组件提供一个“key”，稍后再
      作详细解释。
    -->
<div id="app-8">
  <ol>   
    <todo-item
      v-for="item in groceryList"
      v-bind:todo="item"
      v-bind:key="item.id">
    </todo-item>
  </ol>
</div>

<script>
// data: 后是一个对象，或者用函数返回一个对象
	//app1
	new Vue({
	    el:'#app-1',
	    data: {
	        message:'Hello World!'
	    }
	});
    
    //app2 
	var app2 = new Vue({
  	  	  el:'#app-2',
		  data: {
		    message: '页面加载于 ' + new Date().toLocaleString()
	  	  }
	});

    //app3
	var app3 = new Vue({
	  el: '#app-3',
	  data: {
	    seen: true
	  },
	  methods:{
	  	// methods的用法 参见 App5
	  	setSeen:function(isSeen){
	  		this.seen=isSeen
	  	}
	  }
	});
	
	//数组,[] 用于表示数组
	var app4 = new Vue({
	  el: '#app-4',
	  data: {
	    todos: [
	      { text: '学习 JavaScript' },
	      { text: '学习 Vue' },
	      { text: '整个牛项目' }
	    ]
	  }
	});

    // methods的使用详解
	var app5 = new Vue({
	  el: '#app-5',
	  data: {
	    message: 'Hello Vue.js!'
	  },
	  methods: {
	    reverseMessage: function () {
	      this.message = this.message.split('').reverse().join('')
	    }
	  }
	});

	//App6  
	var app6 = new Vue({
	  el: '#app-6',
	  data: {
	    message: 'Hello Vue!'
	  }
	});

	//App7 Vue的组件使用
	Vue.component('todo-item',{
		template: '<li>Test 数据</li>'
	})
	
     var app7=new Vue({
     	el: '#app-7'
     })

	//App8
	Vue.component('todo-item', {
	  props: ['todo'],
	  template: '<li>{{ todo.text }}</li>'
	})

	var app8 = new Vue({
	  el: '#app-8',
	  data: {
	    groceryList: [
	      { id: 0, text: '蔬菜' },
	      { id: 1, text: '奶酪' },
	      { id: 2, text: '随便其它什么人吃的东西' }
	    ]
	  }
	});
	
</script>

<style>
	span{color: red;}
</style>
</body>
</html>


